kotlin数据类型

您所在的位置:网站首页 kotlin 枚举类 kotlin数据类型

kotlin数据类型

2023-06-26 10:45| 来源: 网络整理| 查看: 265

数据类型

在 Kotlin 中,所有变量的成员方法和属性都是一个对象。一些类型是内建的,它们的实现是优化过的,但对用户来说它们就像普通的类一样。

基本数据类型:Kotlin 提供了与 Java 类似的基本数据类型,包括:Byte、Short、Int、Long、Float、Double、Boolean 和 Char。字符串类型:Kotlin 中的字符串类型为 String,它是不可变的,可以使用双引号或三引号来定义字符串。数组类型:Kotlin 中的数组类型为 Array,它可以存储相同类型的多个元素,并且大小可以在运行时动态修改。列表类型:Kotlin 中的列表类型为 List 和 MutableList,它们可以存储相同类型的多个元素,但 List 是不可变的,而 MutableList 是可变的。集合类型:Kotlin 中的集合类型包括 Set 和 Map,它们可以存储不同类型的多个元素,但 Set 中的元素是唯一的,而 Map 中包含键值对。元组类型:Kotlin 中没有内置的元组类型,但我们可以使用 Kotlin 的类、数据类或数据类的组件来模拟元组。枚举类型:Kotlin 中的枚举类型为 enum class,它可以表示一组有限的、命名的值。空类型:Kotlin 中的空类型为 null,可以用于表示缺少值或无效状态。 数值

Kotlin 处理数值的方法和 java 很相似,但不是完全一样。比如,不存在隐式转换数值的精度,并且在字面上有一些小小的不同。

Kotlin 提供了如下内建数值类型(和 java 很相似):

类型占位Double64Float32Long64Int32Short16Byte8 字面值常量

主要是以下几种字面值常量:

长整型要加大写 L : 123L默认双精度浮点数(Double) : 123.5 , 123.5e10单精度浮点数(Float)要添加 f 或 F :123.5f 数值常量中可以添加下划线分割

您可以使用下划线增加数值常量的可读性:

val oneMillion = 1_000_000 val creditCardNumber = 1234_5678_9012_3456L val socialSecurityNumber = 999_99_9999L val hexBytes = 0xFF_EC_DE_5E val bytes = 0b11010010_01101001_10010100_10010010 显式转换

注意:没有隐私转化

// 这是些伪代码,不能编译的 val a: Int? =1 // 一个装箱过的 Int (java.lang.Integer) val b: Long? = a // 一个隐式装箱的 Long (java.lang.Long) print( a == b )// 很惊讶吧 这次打印出的是 'false' 这是由于 Long 类型 的 equals() 只有和 Long 比较才会相同

短类型是不会隐式转换为长类型的。这意味着我们必须显式转换才能把Byte 赋值给 Int

val b: Byte = 1 // OK, 字面值常量会被静态检查 val i: Int = b // ERROR

我们可以通过显式转换把数值类型提升

val i: Int = b.toInt() // 显式转换

每个数值类型都支持下面的转换: toByte(): Byte

toShort(): Short

toInt(): Int

toLong(): Long

toFloat(): Float

toDouble(): Double

toChar(): Char

字符串

字符串是由 String 表示的。字符串是不变的。字符串的元素可以通过索引操作读取: s[i] 。字符串可以用 for 循环迭代:

val str :String = "sssdsss"; println(str[3]) for (c in str) { println(c); }

trim-margin()函数移除空格:

val text = """ |Tell me and I forget. |Teach me and I remember. |Involve me and I learn. |(Benjamin Franklin) """.trimMargin() println(text)

字符串模板

val str :String = "d" println("s$str") //打印sd println("s${str}s") //打印sds any和nothingAny 和 Nothing 是 Kotlin 中的两个特殊类型。

Any:Any 是 Kotlin 中的根类型,它是所有非空类型的超类型。类似于 Java 中的 Object 类型,可以用来表示任何类型的值。例如,我们可以将一个 Int 值赋给一个 Any 类型的变量,如下所示:

val x: Any = 42

Nothing:Nothing 是 Kotlin 中的特殊类型,它表示不可能存在的值或永远不会返回的函数。例如,当一个函数永远不会返回时,可以将其声明为返回类型为 Nothing。例如:

fun fail(message: String): Nothing { throw IllegalStateException(message) }

在上面的示例中,fail 函数永远不会返回,因为它总是抛出一个异常。

另一个常见的用例是当我们在一个 when 表达式中覆盖了所有可能的情况时,可以将其返回类型声明为 Nothing。这样做可以让编译器知道这个 when 表达式是完备的,不需要添加 else 分支。

fun process(x: Any) { when (x) { is String -> println(x.length) is Int -> println(x * 2) else -> throw IllegalArgumentException("Unknown type") } }

在上面的示例中,当 x 不是 String 或 Int 类型时,我们抛出了一个异常,因此我们可以将 process 函数的返回类型声明为 Nothing。这样做可以让编译器知道,当 x 的类型不是 String 或 Int 时,这个函数不会返回任何值。

需要注意的是,虽然 Any 和 Nothing 都是 Kotlin 中的特殊类型,但它们的用途和语义完全不同。Any 是所有非空类型的超类型,而 Nothing 是表示不可能存在的值或永远不会返回的函数的特殊类型。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3